<?php

if (! defined ( 'BASEPATH' ))
	exit ( 'No direct script access allowed' );
/**
 * CodeIgniter
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * @package		CodeIgniter
 * @author		ExpressionEngine Dev Team
 * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc.
 * @license		http://codeigniter.com/user_guide/license.html
 * @link		http://codeigniter.com
 * @since		Version 1.0
 * @filesource
 */

// ------------------------------------------------------------------------


/**
 * CodeIgniter Directory Helpers
 *
 * @package		CodeIgniter
 * @subpackage	Helpers
 * @category	Helpers
 * @author		ExpressionEngine Dev Team
 * @link		http://codeigniter.com/user_guide/helpers/directory_helper.html
 */

// ------------------------------------------------------------------------


/**
 * Create a Directory Map
 *
 * Reads the specified directory and builds an array
 * representation of it.  Sub-folders contained with the
 * directory will be mapped as well.
 *
 * @access	public
 * @param	string	path to source
 * @param	int		depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
 * @return	array
 */
if (! function_exists ( 'directory_map' )) {
	function directory_map($source_dir, $directory_depth = 0, $hidden = FALSE) {
		if ($fp = @opendir ( $source_dir )) {
			$filedata = array ();
			$new_depth = $directory_depth - 1;
			$source_dir = rtrim ( $source_dir, DIRECTORY_SEPARATOR ) . DIRECTORY_SEPARATOR;
			
			while ( FALSE !== ($file = readdir ( $fp )) ) {
				// Remove '.', '..', and hidden files [optional]
				if (! trim ( $file, '.' ) or ($hidden == FALSE && $file [0] == '.')) {
					continue;
				}
				
				if (($directory_depth < 1 or $new_depth > 0) && @is_dir ( $source_dir . $file )) {
					$filedata [$file] = directory_map ( $source_dir . $file . DIRECTORY_SEPARATOR, $new_depth, $hidden );
				} else {
					$filedata [] = $file;
				}
			}
			
			closedir ( $fp );
			return $filedata;
		}
		
		return FALSE;
	}
}


/* End of file directory_helper.php */
/* Location: ./system/helpers/directory_helper.php */